/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package br.com.webfis.controller;

import br.com.caelum.vraptor.Delete;
import br.com.caelum.vraptor.Get;
import br.com.caelum.vraptor.Path;
import br.com.caelum.vraptor.Post;
import br.com.caelum.vraptor.Resource;
import br.com.caelum.vraptor.Result;
import br.com.webfis.modelos.Destinatario;
import br.com.webfis.persistencia.DestinatarioDAO;
import java.util.List;

/**
 *
 * @author silvio
 */
@Resource
public class DestinatarioController {
    
    private final DestinatarioDAO dao;
    private final Result result;
    
    public DestinatarioController(DestinatarioDAO dao, Result result) {
        this.dao = dao;
        this.result = result;
    }
    
    public void novo(){
        this.result.of(this).edita(0);
    }
    
    @Post("/destinatario/")
    public void salva(Destinatario destinatario){
             
        if(destinatario.getIdDestinatario() == null)
            dao.salvar(destinatario); 
        else {
            dao.atualizar(destinatario);
        }
        this.result.include("mensagem","Destinatario salvo com sucesso!!");
        this.result.redirectTo(this).lista();
    }
    
    @Delete("/destinatario/{idItem}")
    public void deleta(Integer idItem){
        Destinatario l;
        l = dao.Pesquisar(idItem,"").get(0); 
        dao.deletar(l);
        this.result.include("mensagem","Destinatario apagado!!");
        this.result.redirectTo(this).lista();
    }
    
    @Get("/destinatario/{idItem}")
    public Destinatario edita(Integer idItem){
        Destinatario l;
        l = dao.Pesquisar(idItem,"").get(0); 
        return l;
    }
    
    
    public List<Destinatario> lista(String filtro) { 
        List<Destinatario> l;
        
        l = dao.Pesquisar(-1,filtro==null?"":filtro);//dao.listaTudo();
        
        return l;
    }
    
    @Path("/destinatario")
    public List<Destinatario> lista() { 
        List<Destinatario> l;
        
        l = dao.listaTudo();
        
        return l;
    }
    
    public void pesquisa(String filtro) { 
        List<Destinatario> l;
        l = dao.Pesquisar(-1,(filtro==null?"":filtro));
        //this.result.forwardTo(this).lista();        
    }
}